home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / gui / linebox.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  6KB  |  134 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. import wx
  5. import gui
  6.  
  7. class LineBox(wx.Panel):
  8.     border = 30
  9.     
  10.     def __init__(self, parent, id = -1, label = '', **kws):
  11.         wx.Panel.__init__(self, parent, id, **kws)
  12.         self.label_pos = wx.Point(25, 5)
  13.         self.padding = wx.Size(5, 5)
  14.         self.Sizer = sz = wx.BoxSizer(wx.VERTICAL)
  15.         if isinstance(label, basestring):
  16.             self.set_label(wx.StaticText(self, -1, label))
  17.         
  18.         self.BackgroundColour = wx.WHITE
  19.         self.BBind(PAINT = self.on_paint, SIZE = self.on_size)
  20.         self.color1 = wx.BLACK
  21.         self.color2 = wx.WHITE
  22.         self.on_size()
  23.  
  24.     
  25.     def on_size(self, e = None):
  26.         sz = self.Size
  27.         y = self.label.Size.height + self.label_pos.y + self.padding.height
  28.         self.lines = [
  29.             ((self.label_pos.x - self.padding.width, 0, 2, sz.height), wx.SOUTH),
  30.             ((0, y, sz.width, 2), wx.EAST)]
  31.         if e:
  32.             e.Skip()
  33.         
  34.  
  35.     
  36.     def set_label(self, label):
  37.         if hasattr(self, 'label') and self.label:
  38.             self.label.Destroy()
  39.         
  40.         self.label = label
  41.         sz = label.MinSize
  42.         self.Sizer.AddSpacer(self.label_pos.y)
  43.         s = wx.BoxSizer(wx.HORIZONTAL)
  44.         s.AddSpacer(self.label_pos.x)
  45.         s.Add(label)
  46.         self.Sizer.Add(s)
  47.  
  48.     
  49.     def on_paint(self, e):
  50.         dc = wx.PaintDC(self)
  51.         for rect, direction in self.lines:
  52.             dc.GradientFillLinear(rect, self.color1, self.color2, direction)
  53.         
  54.         e.Skip(True)
  55.  
  56.     
  57.     def Add(self, control):
  58.         self.Sizer.Add(control, 1, wx.EXPAND | wx.WEST, self.border)
  59.  
  60.  
  61.  
  62. class LineBoxOld(wx.Panel):
  63.     
  64.     def __init__(self, parent, id = -1, label = '', **kws):
  65.         wx.Panel.__init__(self, parent, id, **kws)
  66.         self.label = label
  67.         self.BBind(PAINT = self.on_paint, SIZE = self.on_size, ERASE_BACKGROUND = (lambda e: pass))
  68.         self.lines = []
  69.         self.color1 = wx.BLACK
  70.         self.color2 = wx.WHITE
  71.         self.center = wx.Point(20, 20)
  72.         self.margin = 10
  73.         self.BackgroundColour = wx.WHITE
  74.  
  75.     
  76.     def on_size(self, e = None):
  77.         extra = 10
  78.         linewidth = 2
  79.         self.lines = [
  80.             (wx.Rect(self.center.x - extra, self.center.y, self.Size[0], linewidth), wx.EAST),
  81.             (wx.Rect(self.center.x, self.center.y - extra, linewidth, self.Size[1]), wx.SOUTH)]
  82.         children = self.GetChildren()
  83.         panel = children[0]
  84.         r = self.Rect
  85.         xoff = self.center.x + self.margin
  86.         yoff = self.center.y + self.margin
  87.         panel.Rect = wx.Rect(r.x + xoff, r.y + yoff, r.Width - xoff, r.Height - yoff)
  88.         size = wx.Size(*panel.Sizer.MinSize) + wx.Size(*self.center) + (10, 10)
  89.         self.SetMinSize(size)
  90.         self.Refresh()
  91.  
  92.     
  93.     def on_paint(self, e):
  94.         dc = wx.BufferedPaintDC(self)
  95.         dc.Brush = wx.WHITE_BRUSH
  96.         dc.Pen = wx.TRANSPARENT_PEN
  97.         dc.DrawRectangle(*self.Rect)
  98.         font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
  99.         font.Weight = wx.FONTWEIGHT_BOLD
  100.         dc.Font = font
  101.         dc.DrawText(self.label, self.center.x + 6, self.center.y - 15)
  102.         for line in self.lines:
  103.             (rect, direction) = line
  104.             dc.GradientFillLinear(rect, self.color1, self.color2, direction)
  105.         
  106.  
  107.  
  108.  
  109. def buildbox(parent, box_dict):
  110.     label = box_dict.keys()[0]
  111.     linebox = wx.StaticBox(parent, -1, label)
  112.     sz = wx.StaticBoxSizer(linebox, wx.VERTICAL)
  113.     for pref in box_dict[label]:
  114.         None if isinstance(pref, (str, unicode)) else k == 'custom'
  115.     
  116.     return sz
  117.  
  118. if __name__ == '__main__':
  119.     app = wx.PySimpleApp()
  120.     f = wx.Frame(None, -1, 'Linebox Test')
  121.     sizer = wx.BoxSizer(wx.VERTICAL)
  122.     box = LineBox(f, label = 'Test Preference Group')
  123.     grid = wx.GridSizer(2, 2)
  124.     grid.Add(wx.Button(box, -1, 'one'))
  125.     grid.Add(wx.Button(box, -1, 'two'))
  126.     grid.Add(wx.Button(box, -1, 'three'))
  127.     grid.Add(wx.Button(box, -1, 'four'))
  128.     box.Add(grid)
  129.     sizer.Add(box, 1, wx.EXPAND)
  130.     f.SetSizer(sizer)
  131.     f.Show(True)
  132.     app.MainLoop()
  133.  
  134.